﻿
namespace Needle.Core.Factory
{
    /// <summary>
    /// Creates instances
    /// </summary>
    public interface IFactory
    {

        /// <summary>
        /// Creates an instance of concrete type t with the supplied parameters.
        /// </summary>
        object CreateInstance(params object[] args);

        /// <summary>
        /// Creates an instance of concrete type T with the supplied parameters.
        /// </summary>
        T CreateInstance<T>(params object[] args);
    }
}
